Міністерство освіти і науки України
Національний університет „ Львівська політехніка “
Кафедра програмного забезпечення
Курсова робота
з предмету: ”Проблемно орієнтовані мови програмування”
Мета роботи:
реалізувати завдання у вигляді функцій, які для виконання об‘єднуються в проект. У процесі розробки програм слід широко використовувати відповідні структури даних (масиви, записи, множини, файли).
Варіант №27
Завдання №1
Виконати над квадратною матрицею порядку n послідовність дій, які вибираються згідно з варіантом: сформувати вектор, елементами якого є суми елементів рядків і стовпців, що перетинаються на відповідних елементах головної діагоналі.
Текст програми №1
/////////////// pershe zavdannja ////////////////////
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
void prog1 (void)
{
FILE *fp;
int n,i,j,k,m;
char var;
float A[10][10],sum[10];
//////////////////////// text programy /////////////////////////////
textcolor(11);
clrscr();
fflush(stdin);
printf("\nVvedit rezhym roboty:");
printf("\n 1 - demonstracijnyj;");
printf("\n 2 - vvid danyh z klaviatury\n");
scanf("%c",&var);
switch (var)
{
case '1' :goto s1;
case '2' :goto s2;
}
//////// vidkryttja fajlu
s1:fp=fopen("Zchyt1.dat","r");
fscanf(fp,"%d",&n);
printf("\nNad kvadratnoju matryceju porjadku %d vykonaty diju:",n);
printf("\nsformuvaty vector, elementamy jakogo e sumy elementiv rjadkiv i stovpciv, shcho peretynajutsja na vidpovidnyh elementah golovnoji diagonali.");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
fscanf(fp,"%f",&A[i][j]);
fclose(fp);
goto s3;
s2:printf("\nVvedit porjadok matryci n=");
scanf("%d",&n);
printf("\nNad kvadratnoju matryceju porjadku %d vykonaty diju:",n);
printf("\nsformuvaty vector, elementamy jakogo e sumy elementiv rjadkiv i stovpciv, shcho peretynajutsja na vidpovidnyh elementah golovnoji diagonali.");
printf("\nVvedit elementy matryci:\n");
///////////////// zchytuvannja elementiv matryci //////////////////
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("A[%d][%d]=",i+1,j+1);
scanf("%f",&A[i][j]);
}
////////////////////////////////////////////////////////////////////////////////
//formuvannja vectora, elementamy jakogo e sumy elementiv rjadkiv i stovpciv,///
/// shcho peretynajutsja na vidpovidnyh elementah golovnoji diagonali ///
////////////////////////////////////////////////////////////////////////////////
s3: m=0;
sum[0]=0;
for(k=0;k<n;k++)
{
for(i=0;i<n;i++)
sum[m]+=A[i][k];
for(j=0;j<n;j++)
sum[m]+=A[k][j];
m++;
sum[m]=0;
}
printf("\nVvedena matrycja:\n");
for(i=0;i<n;i++)
{
printf("\n");
for(j=0;j<n;j++)
printf("%-10.2f",A[i][j]);
}
///////////////////////// vyvedennja rezultatu /////////////////////////
printf("\n\nVyvid sformovanogo vectora:");
for(i=0;i<k;i++)
printf("\nsum[%d]=%.2f",i+1,sum[i]);
getchar();
getchar();
}
Завдання №2
Сформувати зі стовпців прямокутної матриці В, які не містять однакових елементів, матрицю С розміром m*k, де k<=n – кількість таких стовпців.
Текст програми №2
/////////// druge zavdannja ////////////////////
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
void prog2 (void)
{
FILE *fp;
char var;
int m,n,i,j,k,ii,jj,y,x;
float B[10][10],C[10][10];
//////////////////////// text programy /////////////////////////////
textcolor(11);
clrscr();
fflush(stdin);
printf("\nIz zadanoji prjamokutnoji matryci sformuvaty matrycju C z stovpciv");
printf(" B, jaki ne mistjat odnakovyh elementiv, rozmirom m*k, de ...